package cdu.sl.domain.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 卡片学习记录表
 * </p>
 *
 * @author Sln
 * @since 2025-04-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_card_study_records")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CardStudyRecordDTO {
        private static final long serialVersionUID = 1L;
        /**
         * 主键，雪花算法生成
         */
        @TableId(value = "id", type = IdType.ASSIGN_ID)
        private Long id;

        /**
         * 用户ID
         */
        private Long userId;

        /**
         * 闪存卡ID
         */
        private Long flashcardId;

        /**
         * 学习集ID
         */
        private Long studySetId;

        /**
         * 学习状态 0-未学习 1-认识 2-不认识 3-已掌握
         */
        private Integer learningStatus;

        /**
         * 上次回答是否正确
         */
        private Boolean isCorrect;

        /**
         * 学习次数
         */
        private Integer studyCount;

        /**
         * 正确回答次数
         */
        private Integer correctCount;

        /**
         * 下次复习时间（间隔重复算法）
         */
        private LocalDateTime nextReviewTime;

        /**
         * 难度系数（间隔重复算法）
         */
        private Double difficulty;

        /**
         * 上次学习时间
         */
        private LocalDateTime lastStudiedAt;

        /**
         * 创建时间
         */
        private LocalDateTime createdAt;

        /**
         * 更新时间
         */
        private LocalDateTime updatedAt;
}
